package com.itheima.ydd.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.ydd.common.PageResult;
import com.itheima.ydd.common.Result;
import com.itheima.ydd.entity.YddTag;
import com.itheima.ydd.service.YddTagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

@RestController
@RequestMapping("/ydd_tag")
public class YddTagController {

    @Autowired
    private YddTagService yddTagService;

    /**
     * 标签详情
     * author:李多庆
     */
    @GetMapping("/rowInfo")
    public Result rowInfo(Integer id) {
        YddTag tag = yddTagService.getById(id);
        return Result.ok("", tag);
    }

    /**
     * 标签列表分页
     * author:李多庆
     */
    @GetMapping("/list")
    public Result list(String tagname, Integer page, Integer limit) {
        //分页查询构造器
        Page<YddTag> pageInfo = new Page<>(page, limit);
        //构造条件查询器
        LambdaQueryWrapper<YddTag> lqw = new LambdaQueryWrapper<>();
        lqw.like(tagname != null, YddTag::getTagname, tagname);
        Page<YddTag> tagPage = yddTagService.page(pageInfo, lqw);

        return tagPage != null ? Result.ok("", PageResult.answer(tagPage.getTotal(), tagPage.getSize(), tagPage.getCurrent(), tagPage.getRecords())) : Result.error("暂无标签数据");
    }


    /**
     * 标签删除
     * author:李多庆
     */
    @GetMapping("/del")
    public Result del(Integer id) {
        yddTagService.removeById(id);
        return Result.ok("删除标签成功", null);
    }

    /**
     * 标签列表_全部
     *
     * @return
     */
    @GetMapping("/all")
    public Result all() {
        List<YddTag> yddTags = yddTagService.list();
        return Result.ok("", yddTags);
    }

    /**
     * 标签修改
     * @param yddTag
     * @return
     */
    @PostMapping("/update")
    public Result update(@RequestBody YddTag yddTag) {
        yddTagService.updateById(yddTag);
        return Result.ok("修改成功", null);
    }

    /**
     * 标签添加
     * @return
     */
    @PostMapping("/add")
    public Result add(@RequestBody YddTag yddTag ) {
        yddTag.setDefault_data("1");
        yddTagService.save(yddTag);
        return Result.ok("添加成功", null);
    }


}
